Multi-user detection method with accelerated sphere decoding

ABSTRACT

The present invention concerns a method for detecting a plurality of symbols (d k (i)) transmitted by or for a plurality K of users, each symbol belonging to a modulation constellation, said method comprising a filtering step filtering a received signal for supplying a vector (z) each component of which being related to a user, said method further comprising a searching step for searching the closest neighbour of said vector among candidates belonging to a lattice of points generated by said modulation constellations, the search being limited to a volume centered around said vector and being carried out by sequentially selecting a coordinate (b k ) of a candidate for each dimension of said vector. The components of said vector are reordered according to an ordering rule prior to said search, the ordering rule being chosen so as to eliminate a higher rate of candidates for a first dimension than for a subsequent dimension to be searched.

[0001] The present invention concerns a multi-user detection method.More particularly, the present invention concerns a maximum likelihoodmulti-user detection method for a DS-CDMA (Direct Sequence Code DivisionMultiple Access) telecommunication system or a MC-CDMA (Multi CarrierCode Division Multiple Access) telecommunication system.

[0002] In a DS-CDMA mobile telecommunication system, the separation ofthe communications coming from or going to the different users isachieved by multiplying each complex symbol of a user by a spreadingsequence which is peculiar to him, also referred to for this reason asthe user signature. The spreading frequency (chip rate) being greaterthan the frequency of the symbols, the signal transmitted by each useris distributed (or spread) in the space of the frequencies. The ratiobetween the band occupied by the spread signal and the band occupied bythe information signal is referred to as the spreading factor. Onreception, the separation of a given user is obtained by means of afiltering adapted to the corresponding signature. When the transmissionchannel has a plurality of propagation paths, the output of the adaptedfiltering contains as many correlation peaks. Each path of the channelcan be modeled by a complex multiplicative coefficient and a delay. Thesignals being propagated along the different paths can be aligned andcombined by means of complex coefficients which are conjugates of thepath coefficients, thus effecting a filtering adapted to thetransmission channel. In order to simplify the terminology, the generalexpression “filtering matched to the user k” will encompass both thefiltering operation matched to the signature of the user k and thefiltering operation matched to the transmission channel.

[0003] To combat the interference between signals destined for (thedownlink) or coming from (the uplink) the different users, multi-userdetection methods have been proposed, and notably iterative detectionmethods such as those known as PIC (Parallel Interference Cancellation)and SIC (Serial Interference Cancellation). They are based on theiteration of an interference elimination cycle including the estimationof the symbols transmitted, the evaluation of the interferences andtheir subtraction from the signals received. Although of highperformance, these methods are not optimal since they do not provide anestimation in the sense of the maximum likelihood of the symbolstransmitted by the different users.

[0004] More recently a method of multi-user detection using a maximumlikelihood criterion and based on a representation by a lattice ofpoints was proposed by L. Brunel et al., in an article entitled “Latticedecoding for joint detection in Direct Sequence CDMA systems” availableon the website www.enst.fr/˜brunel. According to this method, a vectorcharacteristic of the received signal representing a statisticsufficient for the maximum likelihood detection of the symbolstransmitted by the different users is determined. It can be shown undercertain conditions that the characteristic vector can be represented asa point in a lattice disturbed by noise. The detection then consists ofseeking the point in the lattice closest to the point corresponding tothe vector received.

[0005] More specifically, let us first consider a DS-CDMAtelecommunication system with a base station communicating with K usersand let d_(k)(i) be the complex symbol sent to the user k at instant ion the downlink channel. This symbol belongs to a constellationmodulation, denoted A_(k), relative to the user k and hereinafterreferred to as the modulation alphabet of user k.

[0006] The base station transmits to each user k a block of N symbolswith an amplitude of the signal a_(k). The symbols for a user k arespread by a real signature s_(k)(t) with a duration equal to the symbolperiod T, that is: s_(k)(t)=0 if t∉[0,T[. The K complex symbolstransmitted at instant i are placed in a row vector d(i) defined asd(i)=(d₁(i),d₂(i), . . . ,d_(K)(i)).

[0007] The corresponding modulated signal is then, as a function of thetime t: $\begin{matrix}{S_{t} = {\sum\limits_{i = 0}^{N - 1}\quad {\sum\limits_{k = 1}^{K}\quad {a_{k}{d_{k}(i)}{s_{k}\left( {t - {i\quad T}} \right)}}}}} & (1)\end{matrix}$

[0008] We assume that the downlink channel is an ideal channel withwhite additive Gaussian noise (AWGN). If we denote r_(t)=S_(t)+η_(t) thesignal received at time t by a user k where η_(t) is a real vectorhaving Gaussian components of zero mean and variance N₀. A sufficientstatistic for the maximum likelihood detection of d(i) is constituted ofthe observation vector y(i)=(y₁(i),y₂(i), . . . ,y_(K)(i)) wherey_(k)(i) is matched filter output associated with user k, i.e.$\begin{matrix}{{\begin{matrix}\begin{matrix}{{{y_{k}(i)}\overset{\Delta}{=}{\int_{- \infty}^{+ \infty}{{s_{k}\left( {t - {i\quad T}} \right)}r_{t}\quad {t}}}}\quad} \\{= \quad {{\sum\limits_{q = 1}^{K}\quad {a_{q}{d_{q}(i)}{\int_{0}^{T}{{s_{q}(t)}{s_{k}(t)}\quad {t}}}}} + {n_{k}(i)}}}\end{matrix} \\{{= {{\sum\limits_{q = 1}^{K}\quad {a_{q}{d_{q}(i)}R_{q\quad k}}} + {n_{k}(i)}}}\quad}\end{matrix}{{{{with}\quad R_{qk}} = {\int_{0}^{T}{{s_{q}(t)}{s_{k}(t)}\quad {t}\quad {for}\quad k}}},{q = 1},\quad \ldots \quad,K}\quad {{{and}\quad {n_{k}(i)}} = {\int_{0}^{T}{{\eta_{t}.{s_{k}\left( {t - {i.T}} \right)}}{t}}}}}\quad} & (2)\end{matrix}$

[0009] The expression (2) may be rewritten, by adopting a matrixformulation:

y(i)=d(i)M+n(i)  (3)

[0010] where M=AR, A=diag(a₁, . . . , a_(k)) is the K×K diagonal matrixcontaining the amplitude coefficients of the K active users andR=[R_(qk)] is the K×K signature cross-correlation matrix.

[0011] The vector y(i) in equation (3) can be seen as a point of alattice of dimension K with a generator matrix M corrupted by a noise n.The term lattice of points Λ of dimension K will be used for any set ofvectors of R^(K) satisfying:

x=b ₁ v ₁ +b ₂ v ₂ +. . . +b _(K) v _(K)  (4)

[0012] and where {v₁,v₂, . . . , v_(K) is a base on R^(K).

[0013] These base vectors form the rows of the generator matrix G of thelattice. It is therefore possible to write:

x=bG where b=(b ₁ , . . . , b _(K))εZ ^(K).  (5)

[0014] Such a lattice has been represented in FIG. 1 in the case K=2.

[0015] In practice, the components of the noise vector n(i) beingcorrelated, an operation of noise whitening is performed on the signaly(i) prior to decoding. The autocorrelation matrix R being symmetricaldefined positive, it can be decomposed by a Cholesky factorization into:

R=WW^(T)  (6)

[0016] where W is an inferior triangular matrix of size K×K. A whitenedobservation vector is defined as {tilde over (y)}(i)=y(i)(W^(T))⁻¹ and anew lattice Ω is defined representing the vectors {tilde over (x)} with{tilde over (x)}(i)=x(i)(W^(T))⁻¹ where x(i) belongs to Λ.

[0017] The expression (3) can therefore be rewritten:

{tilde over (y)}(i)=d(i){tilde over (M)}+ñ(i)  (7)

[0018] where {tilde over (M)}=M(W^(T))⁻¹ and ñ(i)=n(i)(W^(T))⁻¹. It caneasily be shown that, after whitening, the covariance matrix of thefiltered noise ñ(i) is equal to N₀I_(K) where I_(K) is the identitymatrix of dimension K. The noise vector ñ(i) having real Gaussiandistributed independent components, maximum likelihood detection amountsto finding out the vector x belonging to the lattice Ω which is closestto the received vector {tilde over (y)}, in other terms the vector xwhich minimizes the metric:

m({tilde over (y)}/x)=∥{tilde over (y)}−x∥ ²=({tilde over (y)}−x)({tildeover (y)}−x)^(T) for xεΩ  (8)

[0019] It should be noted that the vector y(i) does not need to bewhitened if use is made of a metric based on the covariance matrix:

m(y/x)=(y−x)R ³¹ ¹(y−x)^(T)  (9)

[0020] Hereinafter, for reasons of simplification, the observationvector, whitened ({tilde over (y)}(i)) or not (y(i)) will be termed zand the metric acting in equation (8) or (9) will be termed ∥.∥.

[0021] The set of transmitted symbols d_(k)(i) is limited to an alphabetof finite size A_(K)⊂Z^(K) hereinafter referred to as a constellation.This constellation is determined by the modulation constellationsrelative to the K users respectively and the cardinal of the alphabetA_(K) is equal to the product of the cardinals of the differentmodulation alphabets. The constellation corresponds to a subset of thelattice Λ and hence of the lattice Ω.

[0022] An exhaustive maximum likelihood decoding would require a searchfor the closest neighbour throughout the constellation. The spheredecoding method restricts its calculation to the points which aresituated within an area of the constellation situated around thereceived point, preferably inside a sphere S of given radius {squareroot}{square root over (C)} centered on the received point as depictedin FIG. 1. Only the points in the lattice situated at a quadraticdistance less than C from the received point are therefore consideredfor the minimization of the metric (8) or (9).

[0023] In practice, the decoder effects the following minimization:$\begin{matrix}{{\min\limits_{x \in \Omega}{{z - x}}} = {\min\limits_{w \in {z - \Omega}}{w}}} & (10)\end{matrix}$

[0024] To do this, the smallest vector w in the translated set z−Ω issought. The vectors z and w can be expressed as: $\begin{matrix}\begin{matrix}{z = {{{\rho G}\quad {with}\quad \rho} = \left( {\rho_{1},\quad \ldots \quad,\rho_{K}} \right)}} \\{{w = {{{\xi G}\quad {with}\quad \xi} = \left( {\xi_{1},\quad \ldots \quad,\xi_{K}} \right)}}\quad}\end{matrix} & (11)\end{matrix}$

[0025] It is important to note that ρ and ξ are real vectors. As w=z−x,where x belongs to the lattice Ω, this gives the equationξ_(i)=ρ_(i)−b_(i) for i=1, . . . ,K with$w = {\sum\limits_{i = 1}^{K}{\xi_{i}{v_{i}.}}}$

[0026] The vector w is a point in the lattice whose coordinates ξ_(i)are expressed in the translated reference frame centered on the receivedpoint z. The vector w belongs to a sphere of quadratic radius C centeredat 0 if and only if:

∥w∥ ² =Q(ξ)=ξGG ^(T)ξ^(T) ≦C  (12)

[0027] In the new system of coordinates defined by ξ, the sphere ofquadratic radius C centered at z is therefore transformed into anellipsoid centered on the origin. The Cholesky factorization of the Grammatrix Γ=GG^(T) gives Γ=ΔΔ^(T), where Δ is an inferior triangular matrixof elements δ_(ij).

[0028] It should be noted that, if the vector y has been whitened, it isnot necessary to effect this factorization since the generator matrixfor the lattice is already triangular and inferior. In both cases:$\begin{matrix}{{Q(\xi)} = {{\xi \quad \Delta \quad \Delta^{T}\xi^{T}} = {{\quad {\Delta^{T}\xi^{T}}}^{2} = {{\sum\limits_{i = 1}^{K}\quad \left( {{\delta_{ii}\xi_{i}} + {\sum\limits_{j = {i + 1}}^{K}\quad {\delta_{ji}\xi_{j}}}} \right)^{2}} \leq C}}}} & (13) \\\begin{matrix}{{{{By}\quad {putting}\quad q_{ii}} = {{\delta_{ii}^{2}\quad {for}\quad i} = 1}},\quad \ldots \quad,K} \\{{q_{ij} = {{\frac{\delta_{i\quad j}}{\delta_{jj}}\quad {for}\quad j} = 1}},\quad \ldots \quad,{K;{i = {j + 1}}},\quad \ldots \quad,K}\end{matrix} & (14) \\{{{there}\quad {is}\quad {obtained}\quad {Q(\xi)}} = {\sum\limits_{i = 1}^{K}{q_{ii}\left( {\xi_{i} + {\sum\limits_{j = {i + 1}}^{K}\quad {q_{ji}\xi_{j}}}} \right)}^{2}}} & (15)\end{matrix}$

[0029] Being concerned first of all with the range of possiblevariations of ξ_(K), and then adding the components one by one bydecreasing index order, the following K inequalities are obtained, whichdefine all the points within the ellipsoid: $\begin{matrix}\begin{matrix}\begin{matrix}{{q_{KK}\xi_{K}^{2}} \leq C} \\{{{q_{{K - 1},{K - 1}}\left( {\xi_{K - 1} + {q_{K,{K - 1}}\xi_{K}}} \right)}^{2} + {q_{KK}\xi_{K}^{2}}} \leq C}\end{matrix} \\{{\forall{l \in \left\{ {1,\quad \ldots \quad,K} \right\}}},{{\sum\limits_{i = l}^{K}\quad {q_{ii}\left( {\xi_{i} + {\sum\limits_{j = {i + 1}}^{K}\quad {q_{ji}\xi_{j}}}} \right)}^{2}} \leq C}}\end{matrix} & (16)\end{matrix}$

[0030] It can be shown that the inequalities (16) make it necessary andsufficient for the integer components of b to satisfy: $\begin{matrix}{{\left\lceil {{- \sqrt{\frac{C}{q_{KK}}}} + \rho_{K}} \right\rceil \leq b_{K} \leq \left\lfloor {\sqrt{\frac{C}{q_{KK}}} + \rho_{K}} \right\rfloor}{\left\lceil {{- \sqrt{\frac{C - {q_{KK}\xi_{K}^{2}}}{q_{{K - 1},{K - 1}}}}} + \rho_{K - 1} + {q_{K,{K - 1}}\xi_{\kappa}}} \right\rceil \leq b_{K - 1} \leq \left\lfloor {{- \sqrt{\frac{C - {q_{KK}\xi_{K}^{2}}}{q_{{K - 1},{K - 1}}}}} + \rho_{K - 1} + {q_{K,{K - 1}}\xi_{K}}} \right\rfloor}{\left\lceil {{- \sqrt{\frac{1}{q_{ii}}\left( {C - {\sum\limits_{l = {i + 1}}^{K}{q_{ll}\left( {\xi_{l} + {\sum\limits_{j = {l + 1}}^{K}\quad {q_{j\quad l}\xi_{j}}}} \right)}^{2}}} \right)}} + \rho_{i} + {\sum\limits_{j = {i + 1}}^{K}{q_{j\quad i}\xi_{j}}}} \right\rceil \leq b_{i}}{b_{i} \leq \left\lfloor {\sqrt{\frac{1}{q_{ii}}\left( {C - {\sum\limits_{l = {i + 1}}^{K}{q_{ll}\left( {\xi_{l} + {\sum\limits_{j = {l + 1}}^{K}\quad {q_{j\quad l}\xi_{j}}}} \right)}^{2}}} \right)} + \rho_{i} + {\sum\limits_{j = {i + 1}}^{K}{q_{j\quad i}\xi_{j}}}} \right\rfloor}} & (17)\end{matrix}$

[0031] where ┐x┌ is the smallest integer greater than the real number xand └x┘ is the largest integer smaller than the real number x.

[0032] In practice K internal counters are used, namely one counter perdimension, each counter counting between a lower and an upper bound asindicated in (17), given that each counter is associated with aparticular pair of bounds. In practice these bounds can be updatedrecursively. We put: $\begin{matrix}{S_{i} = {{S_{i}\left( {\xi_{i + 1},\quad \ldots \quad,\xi_{K}} \right)} = {\rho_{i} + {\sum\limits_{j = {i + 1}}^{K}{q_{j\quad i}\xi_{j}}}}}} & (18) \\{T_{i - 1} = {{T_{i - 1}\left( {\xi_{i},\quad \ldots \quad,\xi_{K}} \right)} = {{C - {\sum\limits_{l = i}^{K}{q_{ll}\left( {\xi_{l} + {\sum\limits_{j = {l + 1}}^{K}\quad {q_{j\quad l}\xi_{j}}}} \right)}^{2}}} = {T_{i} - {q_{ii}\left( {\xi_{i} + S_{i} - \rho_{i}} \right)}^{2}}}}} & (19) \\{T_{i - 1} = {{T_{i} - {{q_{ii}\left( {S_{i} - b_{i}} \right)}^{2}\quad {with}\quad T_{K}}} = {C.}}} & (20)\end{matrix}$

[0033] Using equations (18) to (20), the range of variation of eachcomponent b_(i) is determined recursively, commencing with the componentb_(K):

L_(i) ⁻≦b_(i)≦L_(i) ⁺  (21)

[0034] $\begin{matrix}{{{with}\quad L_{i}^{-}} = {{\left\lceil {{- \sqrt{\frac{T_{i}}{q_{ii}}}} + S_{i}} \right\rceil \quad {and}\quad L_{i}^{+}} = \left\lfloor {\sqrt{\frac{T_{i}}{q_{ii}}} + S_{i}} \right\rfloor}} & (22)\end{matrix}$

[0035] We have heretofore assumed that the signatures s_(k)(t) of theusers were real. More generally, if the user signatures s_(k)(t) arecomplex values, s_(k)(t)=s_(k) ^(R)(t)+j.s_(k) ^(I)(t). In suchinstance, it can be shown that a result similar to (3) is obtained,namely:

y ₂(i)=d ₂(i)M ₂ +n ₂(i)  (23)

[0036] where the vector d₂(i)=(d₁ ^(R)(i),d₁ ^(I)(i), . . . ,d_(K)^(R)(i),d_(K) ^(I)(i)) with d_(k)(i)=d_(k) ^(R)(i)+j.d_(k) ^(I)(i)represents the real and imaginary values of the symbols for thedifferent users, y₂(i)=(y₁ ^(R)(i),y₁ ^(I)(i), . . . ,y_(K)^(R)(i),y_(K) ^(I)(i)) is an observation vector where y_(k)(i)=y_(k)^(R)(i)+j.y_(k) ^(I)(i) is the complex output at instant i of the filtermatched to the user k, namely: $\begin{matrix}{{y_{k}(i)}\overset{\Delta}{=}{\int_{- \infty}^{+ \infty}{{s_{k}^{*}\left( {t - {i\quad T}} \right)}r_{i}\quad {t}}}} & (24)\end{matrix}$

[0037] where .* denotes the conjugate operation and where M₂=A₂R₂ withA₂=diag(a₁,a₁, . . . ,a_(K), a_(K)) and R₂ is the matrix of size 2K×2K:$\begin{matrix}{{R_{2} = \begin{bmatrix}R_{1,1}^{R} & R_{1,1}^{I} & \cdots & R_{1,K}^{R} & R_{1,K}^{I} \\{- R_{1,1}^{I}} & R_{1,1}^{R} & \cdots & {- R_{1,K}^{I}} & R_{1,K}^{R} \\\vdots & \vdots & \quad & \vdots & \vdots \\R_{K,1}^{R} & R_{K,1}^{I} & \cdots & R_{K,K}^{R} & R_{K,K}^{I} \\{- R_{K,1}^{I}} & R_{K,1}^{R} & \cdots & {- R_{K,K}^{I}} & R_{K,K}^{R}\end{bmatrix}}\quad {{{{where}\quad R_{q\quad k}} = {{\int_{0}^{T}{{s_{q}(t)}{s_{k}^{*}(t)}\quad {t}}} = {R_{q,k}^{R} + {{j.R_{q,k}^{I}}\quad {for}\quad k}}}},{q = 1},\quad \ldots \quad,K}} & (25)\end{matrix}$

[0038] The vector y₂(i) in equation (23) can be seen as a point of alattice Λ₂ of dimension 2K, with a generator matrix M₂ corrupted by areal noise n₂. The components of the noise vector n₂(i) being correlatedan operation of noise whitening is performed on the signal y₂(i) priorto decoding. The whitened observation vector is denoted {tilde over(y)}₂(i) where {tilde over (y)}₂(i)=y₂(i)(W₂ ^(T))⁻¹ and R₂=W₂W₂ ^(T).

[0039] Here again, the maximum likelihood detection amounts to findingout the vector x belonging to a lattice Ω₂ (of size 2K) which is closestto the received vector {tilde over (y)}₂. A sphere decoding method canbe performed in accordance with the formalism set out in equations (12)to (22), namely by searching within an ellipsoid, the points belongingto the constellation.

[0040] The sphere decoding method has also been successfully applied toMC-CDMA as described in the article of L. Brunel entitled “Optimummulti-user detection for MC-CDMA systems using sphere decoding”published in the Proceedings PIRMC'01, September 2001, which is hereinincorporated by reference. The main features of the sphere decodingmethod applied to MC-CDMA are set out below.

[0041] It is recalled that the MC-CDMA technique combines OrthogonalFrequency Division Multiplex (OFDM) modulation and CDMA. More precisely,at the transmitting side, in contrast to DS-CDMA where the signal foreach user is multiplied in the time domain in order to spread itsfrequency spectrum, the signature here multiplies the signal of a userin the frequency domain, each element of the signature multiplying thesignal of a different sub-carrier. The MC-CDMA technique can thereforebe viewed as a spreading in the frequency domain followed by an OFDMmodulation.

[0042] At the reception side, the received signal is decomposed (by aFast Fourier Transform) into a set of frequency components relative tothe L different sub-carriers of the OFDM multiplex.

[0043] Let us first consider a MC-CDMA receiver located in a mobileterminal, the base station transmitting symbols to a plurality K ofusers. Denoting r(i)=(r₁(i), . . . , r_(L)(i)) the vector of thefrequency components on the L sub-carriers, d(i)=(d₁(i), . . . ,d_(K)(i)) the vector of the K symbols transmitted at time i by thedifferent users and C the matrix of the K spreading sequences, that is:$\begin{matrix}{C = \begin{bmatrix}c_{11} & \cdots & c_{1L} \\\vdots & \quad & \vdots \\c_{K1} & \cdots & c_{KL}\end{bmatrix}} & (26)\end{matrix}$

[0044] The vector of the frequency components can be expressed as:

r(i)=d(i)AC(i)H(i)+η(i)  (27)

[0045] where η(i)=(η₁(i), . . . , η_(L) (i)) is a white additiveGaussian noise vector, A=diag(a₁, . . . , a_(K)) is the diagonal matrixformed by the amplitudes coefficients of the different users,H(i)=diag(h₁(i), . . . , h_(L)(i)) is the diagonal matrix formed by thedownlink channel coefficients h_(i)(i), relative to the transmissionchannel between the base station and the user. The expression (27) canbe reformulated as follows:

r(i)=d(i)AC _(D)(i)+η(i)  (28)

[0046] where C_(D)(i)=C(i)H(i).

[0047] If the case is taken of the uplink, a plurality of transmissionchannels is to be taken into account since the signal coming from eachuser passes through a different channel. The spreading and the channeleffect can be combined in a matrix C_(U)(i): $\begin{matrix}{{C_{U}(i)} = \begin{bmatrix}{c_{11}{h_{11}(i)}} & \cdots & {c_{1L}{h_{iL}(i)}} \\\vdots & \quad & \vdots \\{c_{K1}{h_{K1}(i)}} & \cdots & {c_{KL}{h_{KL}(i)}}\end{bmatrix}} & (29)\end{matrix}$

[0048] If all the users are received synchronously, the received signalcan then be written similar to (28):

r(i)=d(i)AC _(U)(i)+η(i)  (30)

[0049] We may define an observation vector y(i) in the downlink case by:

[0050] $\begin{matrix}{{y(i)}\quad \underset{\underset{\_}{\_}}{\Delta}\quad {r(i)}\quad {C_{D}^{H}(i)}} & (31)\end{matrix}$

[0051] and, similarly, in the uplink case:

[0052] $\begin{matrix}{{y(i)}\quad \underset{\underset{\_}{\_}}{\Delta}\quad {r(i)}\quad {C_{U}^{H}(i)}} & (32)\end{matrix}$

[0053] where ^(H) stands for the transpose conjugate operation.

[0054] In both cases, the observation vector y(i) can be viewed as theresult of a filtering of the received signal r(i) with a filter matchedto the signature and channel relating to each user k. It can also beconsidered as a point of a lattice ΛΛ with generator matrix AC_(D)C_(D)^(H) in the downlink case and AC_(U)C_(U) ^(H) in the uplink case. Inorder to decorrelate the noise components of y(i), a noise whitening canbe applied. Denoting {tilde over (y)}(i) the whitened version of theobservation vector, the maximum likelihood detection of the transmittedsymbols again amounts to finding out the vector x of the lattice whichis the closest to {tilde over (y)}(i).

[0055] We have seen in the foregoing that the sphere decoding method canbe used for maximum likelihood detection in DS-CDMA and MC-CDMA (for thedownlink as well as for the uplink). In all the cases recited above, theML detection comprises a first step in which the received signal isfiltered with a filter matched to each of the spreading sequence and tothe channel of the users for providing an observation vector y, and,further a noise whitened observation vector {tilde over (y)}(i),followed by a sphere decoding step in which the vector x of the lattice(Ω, Ω₂) closest to the vector {tilde over (y)}(i) is sought.

[0056]FIG. 2 illustrates schematically a DS-CDMA or a MC-CDMA receiverusing a sphere decoding method.

[0057] The received signal r(i) is filtered with a filter 210 matched tothe signatures and channels of the K users to output an observationvector y(i). The noise whitening in 220 provides a whitened version{tilde over (y)}(i) of the observation vector and the lattice pointclosest to {tilde over (y)}(i) is searched in the sphere decoder 230.The closest neighbour x is output from the sphere decoder and thesymbols transmitted to or by the different users are estimatedtherefrom.

[0058] As described above, in relation with expressions (17) to (22),the sphere decoding process necessitates to go through every latticepoint included in the ellipsoid (16) and to compute for each of them thenorm ∥w∥. This scanning algorithm is very time consuming, in particularwhen the number of users K is high.

[0059] In order to speed up the sphere decoding process, some measureshave already been proposed.

[0060] First, the search can be accelerated by updating the radius{square root}{square root over (C)} with the lowest computed norm ∥w∥whereby the ellipsoid is scaled down each time a lower norm is found.Each resealing implies however the computation of new bounds L_(i) ⁻ andL_(i) ⁺ and is followed by a new search within the updated bounds.

[0061] It has also been proposed in the article of L. Brunel entitled“Optimum and sub-optimum multi-user detection based on sphere decodingfor multi-carrier code division access systems” published in theProceedings of ICC'02, April 2002, incorporated herein by reference, torestrict the ranges of variation defined by (21) and (22) so as not tounnecessarily test points which are situated outside the constellation.

[0062] The aim of the present invention is to propose a further measureto reduce the complexity of the sphere decoding process.

[0063] The characteristics of the invention mentioned above, as well asothers, will emerge more clearly from a reading of the followingdescription given in relation to the accompanying figures, amongstwhich:

[0064]FIG. 1 depicts a lattice of points useful to the detection methodemployed in the receiver illustrated in FIG. 2;

[0065]FIG. 2 depicts schematically the structure of a multi-userreceiver using a sphere decoding method;

[0066]FIG. 3 depicts schematically an example of sphere decoding takingthe constellation into account;

[0067]FIG. 4 illustrates the projection of the constellation and thereceived point onto the hyperplane defined by the first two dimensionsused in sphere decoding;

[0068]FIG. 4A gives the search tree of a sphere decoding methodaccording to the prior art;

[0069]FIG. 4B gives the search tree of a sphere decoding methodaccording to the invention.

[0070] We consider again a sphere decoding process as implemented e.g.in a receiver of a DS-CDMA or a MC-CDMA telecommunication system.

[0071] We assume in the following that the symbols d_(k)(i)=d_(k)^(R)(i)+j.d_(k) ^(l)(i) transmitted to or by each user k belong to acomplex modulation alphabet A_(k) of cardinality |A_(k)|.

[0072] Without loss of generality, it will be assumed in the sequel thatthe components d_(k) ^(R)(i) and d_(k) ^(l)(i) are PAM modulationsymbols. In particular, the following results can be extended to thecase where the symbols transmitted to or by the users are PSK modulationsymbols, as shown in the article of Hochwald et al. entitled “Achievingnear-capacity on a multiple antenna channel” available on the websitemars.bell-labs.com

[0073] Denoting M_(2k−1) and M_(2k) the modulation order for d_(k)^(R)(i) and d_(k) ^(I)(i) respectively:

d _(k) ^(R)(i)ε{−M _(2k−1)+1, −M _(2k−1)+3, . . . , M _(2k−1)−3, M_(2k−1)−1 and  (33)

d _(k) ^(I)(i)ε{−M _(2k)+1, −M _(2k)+3, . . . , M _(2k)−3, M_(2k)−1}  (34)

[0074] For example, this will be the case if the d_(k)(i) are 16-QAMsymbols (in such instance M_(2k−1)=M_(2k)=4).

[0075] If the following translation is effected: $\begin{matrix}\begin{matrix}{{{d_{k}^{\prime \quad R}(i)} = {\frac{1}{2}\left( {{d_{k}^{R}(i)} + M_{2K} - 1} \right)\quad {and}}}\quad} \\{{d_{k}^{\prime \quad I}(i)} = {\frac{1}{2}\left( {{d_{k}^{I}(i)} + M_{2K} - 1} \right)\quad {or}\quad {again}\quad {{vectorially}:}}} \\{{d_{2}^{\prime}(i)} = {\frac{1}{2}\left( {{d_{2}(i)} + w_{M}} \right)}}\end{matrix} & (35)\end{matrix}$

[0076] where w_(M)=(M₁−1,M₂−1, . . . , M_(2K)−1). The components d′_(k)^(R)(i) and d_(k) ^(I)(i) are elements of Z and consequently d′₂ (i) isa vector of Z^(2K).

[0077] In general terms, there exists an affine transform transformingthe components d_(k) ^(R)(i) and d_(k) ^(I)(i) into elements of Z andthe vector d′₂(i) can be represented by a vector of Z^(2K).

[0078] The set of the vectors d′₂(i) will be hereinafter referred to asthe constellation like the set of the vectors d₂(i), the former beingdirectly linked to the latter by the above mentioned transformation.

[0079] In a similar manner, the corresponding transformation is effectedon Y₂(i) as defined in (23), that is to say:

y ₂(i)=½(y ₂(i)+w _(M) M ₂)  (36)

[0080] By means of this affine transformation, which is assumed to beimplicit hereinafter, the vector d₂(i)M₂ then belongs to a lattice ofpoints

+₂ of dimension 2.K as defined by equation (5) with G=M₂. Similarly, ifa noise whitening is performed on y₂(i), the vector d₂(i){tilde over(M)}₂ belongs to a lattice of points Ω₂ generated by the matrix G={tildeover (M)}₂=M₂(W₂ ^(T))⁻¹.

[0081] For each user k, the dimensions 2k−1 and 2k bear respectively thereal part and the imaginary part of the complex symbol transmitted by orto the user k considered. As indicated in FIG. 3, the constellation, orequivalently the modulation constellation of the user k, is projectedonto the dimension 2k. This projection defines an interval [M_(2k) ⁻,M_(2k) ⁺]. The bounds L_(2k) ⁻ and L_(2k) ⁺ having been determined inaccordance with (18) to (22), the search interval [B_(2k) ⁻, B_(2k) ⁺]can then defined by:

B _(2k) ⁻=max(L _(2k) ⁻ , M _(2k) ⁻) and B _(2k) ⁺=min(L _(2k) ⁺ , M_(2k) ⁺)  (37)

[0082] Once a value b_(2k) has been chosen in the search interval[B_(2k) ⁻, B_(2k) ⁺], the bounds L_(2k−1) ⁻ and L_(2k−1) ⁺ aredetermined and a new search interval [B_(2k−1) ⁻, B_(2k−1) ⁺] on thedimension 2k−1 is defined by:

B _(2k−1) ⁻=max(L _(2k−1) ⁻ , M _(2k−1) ⁻) and B _(2k−) ⁺=min(L _(2k−1)⁺ , M _(2k−1) ⁺)  (38)

[0083] where [M_(2k−1) ⁻, M_(2k−1) ⁺] is the projection of theconstellation onto the dimension 2k−1.

[0084] In FIG. 3, the points of the lattice located within the ellipsoidare represented by grey circles if they belong to the constellationwhereas they are represented by grey crosses if they are located outsidethe constellation.

[0085] The algorithm proceeds sequentially from a dimension to thepreceding one. By varying for a given dimension κ each component b_(κ)inside the interval [B_(κ) ⁻, B_(κ) ⁺] instead of [L_(κ) ⁻, L_(κ) ⁺], itis ensured that the closest neighbour is sought only amongst candidateswhich are both located in the ellipsoid and belonging to theconstellation.

[0086] The idea at the basis of the invention in that the orderaccording to which the dimensions of the lattice are treated stronglyinfluence the complexity of the search. As it appears from (17), thesearch starts with the dimension of highest order (2K, in the presentcase) corresponding to the last row of the generator matrix G andproceeds sequentially with dimensions of lower order.

[0087] Let us consider the first two dimensions searched, 2K and 2K−1,for a given constellation, as illustrated in FIG. 4.

[0088] The points belonging to the constellation are represented bycircles, coloured in grey if they are located in the ellipsoid andcoloured in black otherwise. Grey crosses indicate the lattice pointslocated in the ellipsoid but not belonging to the constellation. Theprojection of the received point ρ onto the hyperplane defined by thedimensions 2K and 2K−1 is characterised by its real coordinates ρ_(2K)and ρ_(2K−1).

[0089] The symbols transmitted to or by user K are supposed 16-QAM. Theprojection of the constellation onto the dimension 2K or 2K−1corresponds therefore to the interval [0,3].

[0090] A search tree using conventional sphere decoding has beenrepresented in FIG. 4A where each level of the tree corresponds to adimension of the lattice, the lowest level being associated with thedimension of highest order (2K). Although the first two levels(corresponding to the dimensions 2K and 2K−1 of FIG. 4) are represented,it should be understood that the search tree comprises 2K levels. Thehorizontal extension of each node of the tree indicates the interval[L_(i) ⁻, L_(i) ⁺], the sub-interval [B_(i) ⁻, B_(i) ⁺] of which isrepresented by white boxes while the rest is represented by grey boxes.

[0091] The search starts with the determination of [B_(2K) ⁻,B_(2K) ⁺].From FIG. 4, it appears that [L_(2K) ⁻,L_(2K) ⁺]=[0,3] and [M_(2K) ⁻,M_(2K) ⁺]=[0,3], hence [B_(2K) ⁻,B_(2K) ⁺]=[0,3] which means that b_(2K)can take four possible values:

[0092] If b_(2K)=0, [B_(2K−1) ⁻,B_(2K−1) ⁺]=[L_(2K−1) ⁻,L_(2K−1)⁺]∩[M_(2K−1) ⁻,M_(2K−1) ⁺]={5}∩[0,3]=Ø, hence no candidate value ofb_(2K−1) is to be considered and the node is therefore a dead leaf.

[0093] If b_(2K)=1, [B_(2K−1) ⁻,B_(2K−1) ⁺]=[L_(2K−1) ⁻,L_(2K−1)⁺]∩[M_(2K−1) ⁻,M_(2K−1) ⁺]=[4,5]∩[0,3]=Ø, hence this node is also a deadleaf.

[0094] If b_(2K)=2, [B_(2K−1) ⁻,B_(2K−1) ⁺]=[L_(2K−1) ⁻,L_(2K−1)⁺]∩[M_(2K−1) ⁻,M_(2K−1) ⁺]=[3,5]∩[0,3]={3}, hence b_(2K−1)=3 is thesingle candidate value to be considered. Only one branch starts fromthis node to the subsequent level 2K−2.

[0095] If b_(2K)=3, [B_(2K−1) ⁻,B_(2K−1) ⁺]=[L_(2K−1) ⁻,L_(2K−1)⁺]∩[M_(2K−1) ⁻,M_(2K−1) ⁺]=[3,4]∩[0,3]={3}, hence b_(2K−1)=3 is againthe single candidate value to be considered. Only one branch starts fromthis node to the level 2K−2.

[0096] We define the passing rate σ_(i) of a node by the ratio:$\begin{matrix}{\sigma_{i} = \frac{{B_{i}^{+} - B_{i}^{-}}}{{L_{i}^{+} - L_{i}^{-}}}} & (39)\end{matrix}$

[0097] The passing rate of a node is a measure of the filtering effectinduced by the restriction of the search to the interval [B_(i) ⁻, B_(i)⁺]. If the passing rate is low, the filtering effect is high and,conversely, if the passing rate is high, the filtering effect is low.

[0098] The passing rate of a dimension k or, equivalently of a level ofthe tree, is defined as the average passing rate of the nodes belongingto that level.

[0099] As it can be seen from FIG. 4A, the search tree is poorlyselective at its root (4 candidates retained for b_(2K) out of four)while the nodes at a higher level are significantly more selective (atmost 1 candidate retained out of three for b_(2K−1)). It should be notedthat the passing rate of a node can be obtained as the ratio of whiteboxes to the total number of boxes of said node.

[0100] Such a tree is ill-conditioned for the search because a lot ofbranches finally ending to dead leaves (i.e. associated with a voidinterval [B_(κ) ⁻, B_(κ) ⁺]) are explored in vain, the calculation ofthe bounds made at the intermediate nodes along the branch provinguseless in the end.

[0101] According to the present invention, it is proposed to reorder thevectors of the lattice, i.e. the rows of the generator matrix, so thatthe root and low level nodes of the search tree correspond to lowpassing rates (i.e. high selectivity). This enables to discard at anearly stage large parts of the ellipsoid which do not intersect theconstellation.

[0102] According to a first embodiment, the rows of the generator matrixor the dimensions are ordered according to values representing thedistance of the projected centre of the ellipsoid, normalized to thesize of the projected constellation. More specifically for each row ordimension κ, it is calculated: $\begin{matrix}{ɛ_{\kappa} = \frac{2\quad \cdot \delta_{\kappa}}{{M_{\kappa}^{+} - M_{\kappa}^{-}}}} & (40)\end{matrix}$

[0103] where$\delta_{\kappa} = {{\rho_{\kappa} - {\frac{1}{2}\left( {M_{\kappa}^{-} + M_{\kappa}^{+}} \right)}}}$

[0104] denotes the distance of the centre of the ellipsoid, projectedonto dimension κ, to the middle of the projected constellation.

[0105] In practice, it should be understood that any expressionreflecting the said normalized distance can be used instead ofexpression (40).

[0106] The value ε_(κ) represents the eccentricity of the projection ofthe constellation centre relatively to the projected constellation. Thehigher the eccentricity, the more likely the interval [L_(κ) ⁻, L_(κ) ⁺]and [M_(κ) ⁻, M_(κ) ⁺] will little overlap and the interval [B_(κ) ⁻,B_(κ) ⁺] will be smaller than [L_(κ) ⁻, L_(κ) ⁺].

[0107] According to a first reordering rule, the rows are ordered byincreasing values of ε_(κ), namely the larger the normalized distance(or, equivalently the higher the eccentricity), the higher the order ofthe row. By so doing, the low levels in the search tree correspond todimensions for which the projection of the ellipsoid centre lies faroutside the projection of the constellation. The dimensions exhibitinglow passing rates are therefore concentrated at the low levels of thetree, thus enabling to early discard lattice points. By applying thefirst reordering rule, the search of the candidate points belonging tothe intersection of the ellipsoid with the constellation issignificantly accelerated.

[0108] According to a second embodiment, directed to the case where theconstellation has the same size along each and every dimension, thefollowing ordering rules are used:

[0109] According to a second ordering rule, the last rows of thegenerator matrix are chosen so that they correspond to the dimensions κwhere ρ_(κ)<M_(κ) ⁻ or ρ_(κ)>M_(κ) ⁺. Denoting δ′_(κ) the distancebetween ρ_(κ) and M_(κ) ⁻ (if ρ_(κ)<M_(κ) ⁻) or between ρ_(κ) and M_(κ)⁺ (if ρ_(κ)>M_(κ) ⁺), these rows are ordered by increasing values ofδ′_(κ), namely the higher the distance, the higher the order of the row.The search begins with dimensions exhibiting comparatively high distancevalues. The low levels of the search tree correspond therefore todimensions for which the projection of the ellipsoid centre lies faroutside the projection of the constellation. Consequently, thedimensions exhibiting low passing rates are concentrated at the lowlevels of the tree.

[0110] According to a third ordering rule, the first rows of thegenerator matrix are chosen so that they correspond to the dimensions κwhere M_(κ) ⁻≦ρ_(K)≦M_(κ) ⁺.

[0111] These rows are ordered by increasing values of δ_(κ) as definedabove, namely the higher the distance the higher the order of the row.The search begins with dimensions exhibiting comparatively high distancevalues. For a given interval [L_(κ) ⁻, L_(κ) ⁺], the lower δ_(κ) themore likely the interval [B_(κ) ⁻, B^(κ+)] will have the same size as[L_(κ) ⁻, L_(κ) ⁺]. The dimensions exhibiting high passing rates (i.e.low selectivity) are therefore concentrated in the high levels of thetree.

[0112] The second and third ordering rules can be jointly used forsorting the dimensions, the last rows being those for which ρ_(κ)<M_(κ)⁻ or ρ_(κ)>M_(κ) ⁺ and the first rows those for which M_(κ)⁻≦ρ_(K)≦M_(κ) ⁺.

[0113] By applying the second and/or the third reordering rules, thesearch of the candidate points belonging to the intersection of theellipsoid with the constellation is significantly accelerated. Thispoint is illustrated in FIG. 4B showing a search tree according to thesphere decoding method of the invention. The application of the first orthe second ordering rule leads here to the exchange of dimension 2K withdimension 2K−1, that is to an exchange of the last two rows of thegenerator matrix G.

[0114] After exchange, the search starts with the determination of thenew interval [B_(2K) ⁻,B_(2K) ⁺]. As can be seen from FIG. 4, [L_(2K) ⁻,L_(2K) ⁺]=[3,5] and [M_(2K) ⁻,M_(2K) ⁺]=[0,3], hence [B_(2K) ⁻, B_(2K)⁺]={3}. The component b_(2K) can take only one value and therefore onlyone branch is to be explored.

[0115] For b_(2K)=3, we have [L_(2K−1) ⁻, L_(2K−1) ⁺]=[2,3] and,therefore:

[0116] [B_(2K−1) ⁻, B_(2K−1) ⁺]=[L_(2K−) ⁻, L_(2K−1) ⁺]∩[M_(2K−1) ⁻,M_(2K−1) ⁺]=[2,3]∩[0,3]=[2,3]. The two candidate points are found afterhaving explored two nodes only (in comparison with 5 nodes in FIG. 4A).

[0117] According to a third embodiment, for each dimension, there iscalculated the passing rate exhibited by the root if the search were tostart with said dimension (i.e. when the row corresponding to thisdimension were the last of the generator matrix). This passing rate isdenoted σ_(2K) ^(i) and can be expressed as: $\begin{matrix}{\sigma_{2\quad K}^{i} = {\frac{{B_{2K}^{+} - B_{2K}^{-}}}{2 \cdot \sqrt{C/q_{{2K},{2K}}}} = \frac{{{\min \left( {\left\lceil {\sqrt{\frac{C}{q_{{2K},{2K}}}} + \rho_{2K}} \right\rceil,M_{2K}^{+}} \right)} - {\max \left( {\left\lfloor {{- \sqrt{\frac{C}{q_{{2K},{2K}}}}} + \rho_{2K}} \right\rfloor,M_{2K}^{-}} \right)}}}{2 \cdot \sqrt{C/q_{{2K},{2K}}}}}} & (40)\end{matrix}$

[0118] The term q_(2K,2K) appearing at the right side of expression (40)is the coefficient appearing at the bottom right corner of the matrix Δ.It depends on i because the matrix Δ is obtained here by Choleskyfactorization of the generator matrix G after it has been subjected to arow permutation to place the ith row at the bottom of the matrix.

[0119] According to a fourth ordering rule, the rows of the generatormatrix are ordered by decreasing values of σ_(2K) ^(i), namely the roware permuted so that the lower the passing rate, the higher the order ofthe row. Hence, the search starts with the dimensions exhibitingcomparatively low passing rates.

[0120] The third embodiment requiring 2K Cholesky factorizations, it isadvantageous when the number of users is rather low.

[0121] Whatever the ordering rule is used, each reordering of thedimensions can be expressed as a permutation π of the rows of thegenerator matrix. Once the closest point b of the constellation to thereceived point ρ has been found, the inverse permutation π⁻¹ isperformed on the components of b and the symbols d_(k)(i) of the K usersare derived therefrom.

1. Method for detecting a plurality of symbols (d_(k)(i)) transmitted byor for a plurality K of users, each symbol belonging to a modulationconstellation, said method comprising a filtering step filtering areceived signal for supplying a vector (z) each component of which beingrelated to a user, said method further comprising a searching step forsearching the closest neighbour of said vector among candidatesbelonging to a lattice of points generated by said modulationconstellations, the search being limited to a volume centered aroundsaid vector and being carried out by sequentially selecting a coordinate(b_(k)) of a candidate for each dimension of said vector, characterisedin that the components of said vector are reordered according to anordering rule prior to said search, the ordering rule being chosen so asto eliminate a higher rate of candidates for a first dimension than fora subsequent dimension to be searched.
 2. Method according to claim 1,characterised in that, for each dimension (k), a first interval ([M_(k)⁻, M_(k) ⁺]) is determined representing the constellation along saiddimension and that, for a plurality of coordinates already selected ifany, a second interval ([L_(k) ⁻, L_(k) ⁺]) is determined representing aportion of said volume along said dimension, the selection of acoordinate for said dimension being then limited to a third interval([B_(k) ⁻, B_(k) ⁺]) obtained as the intersection of said first andsecond intervals.
 3. Method according to claim 2, characterised in that,for each dimension, it is calculated a value (ε₇₈ ) representative of adistance between the vector component (ρ_(k)) corresponding to saiddimension and the middle of said first interval, normalised by the sizeof the latter, the ordering rule being such that a first dimension to besearched is associated with a higher normalised distance value than avalue associated with a subsequent dimension to be searched.
 4. Methodaccording to claim 2, characterised in that, for each dimension, it ischecked whether the vector component (ρ_(k)) corresponding to saiddimension falls within said first interval and, in the negative, thelarger value of the distance between said component and respectively theupper and lower bounds of said first interval is determined, theordering rule being such that a first dimension to be searched isassociated with a higher value than a value associated with a subsequentdimension to be searched.
 5. Method according to claim 2, characterisedin that, for each dimension, it is checked whether the vector componentcorresponding to said dimension falls within said first interval (ρ_(k))and, in the affirmative, the value of the distance between saidcomponent and the middle of said interval is determined, the orderingrule being such that a first dimension to be searched is associated witha higher value than a value associated with a subsequent dimension to besearched.
 6. Method according to claims 4 and 5, characterised in that afirst vector component corresponding to a first dimension fallingoutside a said first interval representing the constellation along thesame first dimension and a second vector component corresponding to asecond dimension falling within another first interval representing theconstellation along the same second dimension, the ordering rule beingsuch that the first dimension is searched before said second dimension.7. Method according to claim 2, characterized in that, for eachdimension (k) a fourth interval is determined representing theprojection of said volume onto said dimension, a fifth interval isobtained as the intersection of said first and fourth intervals and avalue (σ_(2K) ^(i)) representative of the ratio of the length of thefifth interval to the length of the fourth interval is calculated, theordering rule being such that a first dimension to be searched isassociated with a lower value than a value associated with a subsequentdimension to be searched.
 8. Method according to any preceding claim,characterised in that, once the closest neighbour has been found, itscoordinates are reordered according to the inverse of said ordering ruleand the symbols transmitted to or by said plurality of users are derivedfrom said reordered coordinates.